//JavaScript
var curentEventId;
var illustrationList;
var curentEventIllustrationList;
var illustrationToAddList;
var illustrationToRemoveList;

/**
 * MÚthodes d'envoi de requÛtes
 */ 

function getEvent(idEvent){
  if (idEvent != -1){
    var url = 'include/bd/update_event_bd.php';
    $.getJSON(url
        ,{type_requete:'get_event'
          ,id_evt:idEvent}
        ,gestionReponseEvent);
  }else{
    gestionReponseEvent(null);  
  }
}

function getTypes(){
  var url = 'include/bd/update_event_bd.php';
  $.getJSON(url
    ,{type_requete:'get_types'}
    ,gestionReponseTypes);
}

function getLieux(){
  var url = 'include/bd/update_event_bd.php';
  $.getJSON(url
    ,{type_requete:'get_lieux'}
    ,gestionReponseLieux);
}


function validEvent(){
// On valide l'Event en base
 var url = 'include/bd/update_event_bd.php';
 var typeUpdate = 'add_event';
 if (curentEventId != -1){
    typeUpdate = 'edit_event';
 }
 var idLieu = $('#idLieux')[0].value;
 var idType = $('#idTypes')[0].value;
 var titreEvent = $('#idTitreEvent')[0].value;
 var texteEvent = $('#idTexteEvent')[0].value;
 var dateEvent = $('#idDateEvent')[0].value;
 var heureEvent = $('#idHeureEvent')[0].value;
 var tarifEvent = $('#idTarifEvent')[0].value;
 
 if ((trim(titreEvent) == "")
      || (trim(texteEvent) == "")
      || (trim(dateEvent) == "")
      || (trim(heureEvent) == "")
      ){
      if (trim(titreEvent) == ""){
        alert("Vous devez mettre un titre.");          
      }else if (trim(texteEvent) == ""){
        alert("Vous devez mettre un descriptif.");          
      }else if (trim(dateEvent) == ""){
        alert("Vous devez mettre une date.");          
      }else if (trim(heureEvent) == ""){
        alert("Vous devez mettre une heure.");          
      }
 }else{
   titreEvent = htmlentities(titreEvent);
   texteEvent = htmlentities(texteEvent);
   tarifEvent = htmlentities(tarifEvent);
   // Ó la suite de l'appel on mettra Ó jour les listes d'illustrations
   $.getJSON(url
      ,{type_requete:'update_event'
        , type_update:typeUpdate
        , id_event:curentEventId
        , id_type:idType
        , id_lieu:idLieu
        , titre_event:titreEvent
        , texte_event:texteEvent
        , date_event:dateEvent
        , heure_event:heureEvent
        , tarif_event:tarifEvent}
      ,gestionReponseValidEvent);
   
  }
}

function addTypeToBase(){
  var nomType = $('#idNewType')[0].value;
  var url = 'include/bd/update_event_bd.php';
  $.getJSON(url
    ,{type_requete:'add_type'
      ,nom_type:nomType}
    ,gestionReponseAddType);
}

function addLieuToBase(){
  var nomLieu = $('#idNomLieu')[0].value;
  var adresse1Lieu = $('#idAdresse1Lieu')[0].value;
  var adresse2Lieu = $('#idAdresse2Lieu')[0].value;
  var codePostal = $('#idCodePostalLieu')[0].value;
  var ville = $('#idVilleLieu')[0].value;
  var url = 'include/bd/update_event_bd.php';
  
  if ((trim(nomLieu) == "")
      || ((trim(adresse1Lieu) == "") && (trim(adresse2Lieu) == ""))
      || ((trim(ville) == "") && (trim(codePostal) == ""))
      ){
      if (trim(nomLieu) == ""){
        alert("Le lieu doit avoir un nom.");
      }else if ((trim(adresse1Lieu) == "") && (trim(adresse2Lieu) == "")){
        alert("Le lieu doit avoir au moins un des deux champ adresse de remplit.");
      }else if ((trim(ville) == "") && (trim(codePostal) == "")){
        alert("Le lieu doit avoir un code postal ou une ville.");
      }
  }else{
    nomLieu = htmlentities(nomLieu);
    adresse1Lieu = htmlentities(adresse1Lieu);
    adresse2Lieu = htmlentities(adresse2Lieu);
    ville = htmlentities(ville);
  
    $.getJSON(url
      ,{type_requete:'add_lieu'
        ,nom_lieu:nomLieu
        ,adresse1_lieu:adresse1Lieu
        ,adresse2_lieu:adresse2Lieu
        ,ville_lieu:ville
        ,cp_lieu:codePostal}
      ,gestionReponseAddLieu);
  }
}

/**
 * MÚthodes de gestion de la rÚcupÚration des requÛte
 */ 

function gestionReponseEvent(event)
{
    if (event != null){
      $('#idTitreEvent')[0].value = html_entity_decode(event.titre);
      $('#idTexteEvent').html(html_entity_decode(event.desc));
      $('#idDateEvent')[0].value = event.date;
      $('#idHeureEvent')[0].value = event.heure;
      $('#idTarifEvent')[0].value = html_entity_decode(event.tarif);
      if (event.illustrations.length > 0){
          setListIllustrations(event.illustrations);
      }
    }
}

function gestionReponseTypes(types){
  if (types != null){
    for (var i = 0; i < types.length; i++){
      var type = types[i];
      addType(type.idSection, type.nomSection);      
    }
    $("#idTypes")[0].options[0].selected = true;
  }
}

function gestionReponseLieux(lieux){
  if (lieux != null){
    for (var i = 0; i < lieux.length; i++){
      var lieu = lieux[i];
      addLieu(lieu);      
    }
    $("#idLieux")[0].options[0].selected = true;
  }
}


function gestionReponseValidEvent(event){
  manageAddAndRemoveIllustrations(event.idEvt,'illustre_evt','id_evt');
  // à la suite de l'appel on mettra à jour le flux rss
  var url = 'include/bd/rss_bd.php';   
  $.getJSON(url
      ,{type_requete:'update_rss'
        ,rss_description:'de l\'agenda de Roule Maboule'
        ,req_table:'agenda'
        ,req_table_ill:'illustre_evt'
        ,col_id:'id_evt'
        ,col_titre:'titre'
        ,col_desc:'desc'
        ,col_date:'date_create'
        ,rss_page:'agenda'
        ,rss_file:'agenda-rss.xml'
        ,req_opt:''
        }
      ,gestionReponseRSS);
  // On finit par changer de page
  changePage();
}

function gestionReponseRSS(section){
  
}

function gestionReponseAddType(type){
  //On vide le champ associÚ
  $('#idNewType')[0].value = '';
  addType(type.idSection, type.nomSection);
}

function gestionReponseAddLieu(lieu){
  //On vide le champ associÚ
  $('#idNomLieu')[0].value = "";
  $('#idAdresse1Lieu')[0].value = "";
  $('#idAdresse2Lieu')[0].value = "";
  $('#idCodePostalLieu')[0].value = "";
  $('#idVilleLieu')[0].value = "";  
  addLieu(lieu);
}

/**
 * MÚthodes d'Údition graphique
 */ 

function manageLayout(idEvent){
  initIllustration(idEvent, "zoneIllustration", "divIllustration");
  curentEventId = idEvent;
  var urlImg = "images/";
  if (idEvent == -1){
    urlImg += "agenda.png";
    $('#titreZoneEvent').html("Ajouter un évenement");
  }else{
    urlImg += "agenda.png";
    $('#divType').hide();
    $('#divLieu').hide();
    $('#trTypeEvent').hide();
    $('#trLieuEvent').hide();
    $('#titreZoneEvent').html("Editer un évenement");
  }
  
  $('#idImgModule')[0].src = urlImg;
  
  $("#idDateEvent").datepicker({ 
    dateFormat: "yy-mm-dd", 
    showOn: "both", 
    buttonImage: "images/calendar.gif", 
    buttonImageOnly: true 
  });
}

function addType(idType, typeName){
  var length = $("#idTypes")[0].options.length; 
  typeName = html_entity_decode(typeName);
  $("#idTypes")[0].options[length]= 
        new Option(typeName
                    ,idType
                    , false
                    , true);
}

function addLieu(lieu){
  var length = $("#idLieux")[0].options.length;
  var name = html_entity_decode(lieu.nomLieu)+" ("+
            html_entity_decode(lieu.villeLieu)+")";
  $("#idLieux")[0].options[length]= 
        new Option(name
                    ,lieu.idLieu
                    , false
                    , true);
}

function changePage(){
  document.location = 'index.php?page=agenda'; 
}
